package com.tonghaibo.config;

import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.context.annotation.Bean;

import javax.sql.DataSource;

/**
 * @author jitwxs
 * @date 2025年04月27日 20:15
 */
public class MybatisConfig {

    //sqlSessionFactoryBean 方法中的 setTypeAliasesPackage 主要是为包下的类创建类型别名，
    // 适合配置实体类所在的包。
    @Bean
    public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){
        SqlSessionFactoryBean ssb=new SqlSessionFactoryBean();
        ssb.setDataSource(dataSource);
        ssb.setTypeAliasesPackage("com.tonghaibo.po");
        return ssb;
    }

    //mapperScannerConfigurer 方法中的 setBasePackage 是用于扫描包下的 MyBatis 映射器接口，并为这些接口创建代理对象注册到 Spring 容器中，
    //dao包通常存放数据访问接口。
    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer(){
        MapperScannerConfigurer msc=new MapperScannerConfigurer();
        msc.setBasePackage("com.tonghaibo.dao");
        return msc;
    }
}
